package com.example.listview;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

/**
 * 自定义适配器
 */
public class data_Adapter extends BaseAdapter {
    private Context context;    //上下文
    private int resource_id;    //模型资源
    private List<data_m> list;  //数据资源

    //初始化构造方法
    public data_Adapter(Context context,int resource_id,List<data_m> list)
    {
        super();
     this.context=context;
     this.resource_id=resource_id;
     this.list =list;
    }
    @Override
    public int getCount() {         //得到Item条目的总数
        return list.size(); //数据的长度
    }

    @Override
    public Object getItem(int i) {      //根据position（位置）得到某个Item对象
        return list.get(i);         //得到某个位置的对象
    }

    @Override
    public long getItemId(int i) {      	//根据position（位置）得到某个Item的id
        return i;           //某个位置的id
    }

    /**
     *得到相应position对应的Item视图，position是当前Item的位置,convertView用于复用旧视图，
     * parent用于加载XML布局处理view与data，进行数据填充。
     */
    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        //处理view与data，进行数据填充
        data_m data =(data_m) getItem(i);   //获取数据
        View v;
        viewHolder holder;
        if(view==null)
        {
            //通过膨胀器，获取整个模型视图
            v= LayoutInflater.from(context).inflate(resource_id,viewGroup,false);
            //得到各个控件的对象
             holder=new viewHolder();
            holder.img=v.findViewById(R.id.image);
            holder.title=v.findViewById(R.id.title);
            holder.nr= v.findViewById(R.id.nr);
            v.setTag(holder);//绑定ViewHolder对象
        }else
        {
            v=view;
            holder= (viewHolder) v.getTag();//获取绑定ViewHolder的对象
        }
        //设置显示的内容，即我们存放在动态数组中的数据
        holder.img.setImageResource(data.getImg());
        holder.title.setText(data.getTitle());
        holder.nr.setText(data.getNr());
        return v;       //将适配好的数据图，返回给展示视图
    }
//    自定义暂时存放控件
   class viewHolder {
        ImageView img;
        TextView title;
        TextView nr;
    }
}
